﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Rance.Battle
{
    class 穿梭战场1 : 主动技能
    {
        public 穿梭战场1()
        {
            this.技能速度 = 110;
            this.消耗行动点 = Battle.消耗行动点.一点;
            this.技能目标 = Battle.技能目标.全体;
            this.技能站位要求 = Battle.技能站位要求.无;
        }

        public override void Excute(技能环境 环境)
        {
            foreach (var 角色 in 环境.目标List)
            {
                if (角色.守护率 > 0)
                {
                    int value = 角色.守护率 > 80 ? 80 : 角色.守护率;
                    角色.守护率 -= value;
                    获得守护率Behavior 获得守护率Behavior = new Battle.获得守护率Behavior();
                    获得守护率Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };
                    获得守护率Behavior.守护率 = 0 - value;
                    获得守护率Behavior.全体守护率 = 0;
                    获得守护率Behavior.当前守护率 = 角色.守护率;
                    获得守护率Behavior.当前全体守护率 = 角色.全体守护率;
                    环境.行动结果.ResultList.Add(获得守护率Behavior);

                    if (角色.守护率 == 0)
                    {
                        解除守护Behavior 解除守护Behavior = new 解除守护Behavior();
                        解除守护Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };

                        环境.行动结果.ResultList.Add(解除守护Behavior);
                    }

                }
                else if (角色.全体守护率 > 0)
                {
                    int value = 角色.全体守护率 > 50 ? 50 : 角色.全体守护率;
                    角色.全体守护率 -= value;
                    获得守护率Behavior 获得守护率Behavior = new Battle.获得守护率Behavior();
                    获得守护率Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };
                    获得守护率Behavior.守护率 = 0;
                    获得守护率Behavior.全体守护率 = 0 - value;
                    获得守护率Behavior.当前守护率 = 角色.守护率;
                    获得守护率Behavior.当前全体守护率 = 角色.全体守护率;
                    环境.行动结果.ResultList.Add(获得守护率Behavior);

                    if (角色.全体守护率 == 0)
                    {
                        解除守护Behavior 解除守护Behavior = new 解除守护Behavior();
                        解除守护Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };

                        环境.行动结果.ResultList.Add(解除守护Behavior);
                    }
                }
            }

            base.Excute(环境);
        }
    }

    class 穿梭战场2 : 主动技能
    {
        public 穿梭战场2()
        {
            this.技能速度 = 120;
            this.消耗行动点 = Battle.消耗行动点.一点;
            this.技能目标 = Battle.技能目标.全体;
        }

        public override void Excute(技能环境 环境)
        {
            foreach (var 角色 in 环境.目标List)
            {
                if (角色.守护率 > 0)
                {
                    角色.守护率 = 0;

                    解除守护Behavior 解除守护Behavior = new 解除守护Behavior();
                    解除守护Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };

                    环境.行动结果.ResultList.Add(解除守护Behavior);


                }
                else if (角色.全体守护率 > 0)
                {
                    角色.全体守护率 = 0;

                    解除守护Behavior 解除守护Behavior = new 解除守护Behavior();
                    解除守护Behavior.角色 = new 角色Struct() { ID = 角色.ID, Name = 角色.Name };

                    环境.行动结果.ResultList.Add(解除守护Behavior);

                }

            }
        }
    }
}
